This invention relates generally to a coded object system and computer methods for recognizing codes and more particularly to coded objects and code recognition methods within an environment with low lighting, low resolution, and low dynamic range capabilities of the code reader.
Bar-codes are a specific type of coded object and are becoming increasingly popular as a means of identifying objects. Consequently, bar-codes are quickly being introduced into many segments of society. That is, bar-codes are not merely being used to identify grocery store items in a supermarket. For example, bar-codes are now being used by businesses to keep track of documents and by manufacturers to keep track of components within their assembly line.
When one thinks of conventional bar-codes, one initially thinks of bar-codes that are used on product packaging to identify the product type and price, for example. Typically, a product bar-code is in the form of dark lines or "bars" against a light background. The dark bars are arranged in parallel and are of varying width. Typically, a bar-code reader that includes a laser beam is configured to read the bar-code. The width of each bar is determined by calibrating each bar with a particular frequency of the laser beam. The identification of each bar-code is then determined by ascertaining the arrangement of bars and associated widths of the bar-code. A similar type arrangement is used for recognizing business documents.
Although the above-described bar-code system works adequately within the business world, this bar-code system has many limitations. For example, the bar-code must conform to a set of strict size and shape requirements. Also, the bar-code must be positioned directly under the laser beam of the bar-code reader or the laser beam must be positioned directly over the bar-code. This positioning must be accomplished in such a way as to allow the laser beam to move perpendicularly across the parallel widths of the bars. If these requirements are not met, the bar-code reader will fail to correctly identify the bar-code. Thus, one must ensure that the bar-codes meet the size and shape requirements, and that the bar-code reader is used correctly. Since one cannot completely eliminate human error, for example, it is difficult to achieve perfect reliability for reading and identifying bar-codes in the above-described conventional system.
Another conventional bar-code system utilizes a camera for reading the bar-code, instead of a laser, and is typically found within a manufacturing environment. For example, bar-codes are placed on components so that a camera may identify each component as the components moves through the assembly line. That is, a camera may be placed at a specified location such that a bar-code of a component moves directly below the camera. The camera translates the bar-code into a representational image, and the image is then analyzed and interpreted. The camera is typically configured and positioned so that the bar-code fills the view of the camera and the camera takes a high-resolution bar-code image which is then analyzed and identified.
Like the conventional laser-based bar-code system, the conventional camera-based bar-code system has many disadvantages. For example, in order to achieve accurate results, the camera must have a high dynamic range, the lighting must be consistently bright, or the resolution of the bar-code image must be relatively high. Otherwise, the bar-code image may be incorrectly interpreted. For example, under low lighting conditions, the bars of the bar-code image may appear wider than they actually are. By way of another example, if the resolution is too low, the bar-code image may appear blurry. That is, one dark area of the bar-code is mapped onto too few pixels, and the bar-code image is analyzed incorrectly. In sum, the reliability of the camera-based bar-code system is dependent on lighting conditions, resolution parameters, and camera specifications.
As a result of the built-in constraints of the above-described conventional bar-codes recognition systems, the above-described systems only work in a tightly constrained environment. For example, conventional bar-code systems may not work well in the context of a system where the bar-code was positioned within a small area of the image. By way of another example, the reliability of conventional bar-code systems may be significantly reduced under poor or nonuniform lighting conditions.
Thus, there is a need for an improved coded object system and a method for recognizing codes within the coded object system even when lighting conditions, resolution parameters, and camera capabilities are not ideal. That is, what is needed is a method and apparatus for recognizing codes within a less constrained environment. Additionally, there is a need for a code recognition system that could be implemented in real time and run on a relatively low-end processor.